// 简化版marked实现，用于微信小程序

/**
 * 基础markdown渲染函数
 * @param {string} markdown - markdown文本
 * @returns {string} - 渲染后的HTML
 */
function marked(markdown) {
  if (!markdown) return '';
  
  let html = markdown;
  
  // 处理标题
  html = html.replace(/^#{1,6}\s+([^\n]+)/gm, function(match, title) {
    const level = match.match(/^#{1,6}/)[0].length;
    return `<h${level}>${title}</h${level}>`;
  });
  
  // 处理加粗
  html = html.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>');
  html = html.replace(/__([^_]+)__/g, '<strong>$1</strong>');
  
  // 处理斜体
  html = html.replace(/\*([^*]+)\*/g, '<em>$1</em>');
  html = html.replace(/_([^_]+)_/g, '<em>$1</em>');
  
  // 处理代码块
  html = html.replace(/```([\s\S]*?)```/g, '<pre><code>$1</code></pre>');
  
  // 处理行内代码
  html = html.replace(/`([^`]+)`/g, '<code>$1</code>');
  
  // 处理链接
  html = html.replace(/\[([^\]]+)\]\(([^\)]+)\)/g, '<a href="$2" target="_blank">$1</a>');
  
  // 处理列表项
  html = html.replace(/^-\s+([^\n]+)/gm, '<li>$1</li>');
  html = html.replace(/^\d+\.\s+([^\n]+)/gm, '<li>$1</li>');
  
  // 将连续的li标签包装成ul或ol
  html = html.replace(/(<li>[^<]+<\/li>\s*)+/g, function(match) {
    if (/^\d+\./m.test(match)) {
      return '<ol>' + match + '</ol>';
    }
    return '<ul>' + match + '</ul>';
  });
  
  // 处理换行
  html = html.replace(/\n/g, '<br>');
  
  return html;
}

/**
 * 设置选项（为了API兼容）
 */
marked.setOptions = function(options) {
  // 这里可以根据需要实现选项配置
  return this;
};

module.exports = marked;